package com.ruoyi.module.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 资金明细对象 fu_fund_details
 *
 * @author fubojin
 * @date 2025-01-10
 */
@Data
@ApiModel(value = "资金明细")
@EqualsAndHashCode(callSuper = true)
public class FundDetails extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 用户ID
     */
    @Excel(name = "用户ID")
    @ApiModelProperty(value = "用户ID")
    private Long userId;

    /**
     * 订单归属
     */
    @Excel(name = "订单归属")
    @ApiModelProperty(value = "订单归属")
    private Long deptId;

    /**
     * 订单归属公司名称
     */
    @Excel(name = "订单归属公司名称")
    @ApiModelProperty(value = "订单归属公司名称")
    private String deptName;

    /**
     * 订单ID
     */
    @Excel(name = "订单ID")
    @ApiModelProperty(value = "订单ID")
    private Long orderId;

    /**
     * 资金类型（1-订单提成，2-扣除保证金，3-在线充值, 4-信誉金操作, 5-取消订单，6-取消发货订单，7-在线提现，8-保证金回退, 9-佣金回退,10-返回充值活动金额，11-订单退款）
     */
    @ApiModelProperty(value = "资金类型")
    private Integer fundType;

    /**
     * 资金抽佣类型（1-公司，2-经销商）
     */
    @ApiModelProperty(value = "资金抽佣类型")
    private Integer type;

    /**
     * 借款类型(1-待借款，2-已借款，3-借款，4-还款部分，5-已还款，6-还款明细)
     */
    @ApiModelProperty(value = "借款(1-待借款，2-已借款，3-借款，4-还款部分，5-已还款，6-还款明细)")
    private Integer loanType;

    /**
     * 还款金额
     */
    @ApiModelProperty(value = "还款金额")
    private BigDecimal loanMoney;

    /**
     * 订单金额
     */
    @Excel(name = "订单金额")
    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderTotalMoney;

    /**
     * 变动金额
     */
    @Excel(name = "变动金额")
    @ApiModelProperty(value = "变动金额")
    private BigDecimal variableAmount;

    /**
     * 订单号
     */
    @Excel(name = "订单号")
    @ApiModelProperty(value = "订单号")
    private String orderNo;

    /**
     * 到账时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到账时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "到账时间")
    private Date receiptTime;

    /** 开始时间 */
    private Date beginCreateTime;

    /** 结束时间 */
    private Date endCreateTime;

}
